package cn.tiger.utils;

import java.io.File;
import java.io.InputStream;
import java.net.URL;

public class ResourceUtil {

    /**
     * 根据指定的相对路径获取资源文件的绝对路径
     *
     * @param relativePath 相对路径
     * @return 资源文件的绝对路径
     */
    public static String getAbsolutePath(String relativePath) {
        URL url = ResourceUtil.class.getClassLoader().getResource(relativePath);
        if (url != null) {
            return url.getPath();
        }
        return null;
    }

    /**
     * 根据指定的相对路径获取资源文件输入流
     *
     * @param relativePath 相对路径
     * @return 资源文件输入流，若文件不存在则返回null
     */
    public static InputStream getResourceAsInputStream(String relativePath) {
        ClassLoader classLoader = ResourceUtil.class.getClassLoader();
        InputStream inputStream = classLoader.getResourceAsStream(relativePath);
        return inputStream;
    }

    /**
     * 根据指定的相对路径获取资源文件对象
     *
     * @param relativePath 相对路径
     * @return 文件对象
     */
    public static File getFile(String relativePath) {
        String absolutePath = getAbsolutePath(relativePath);
        if (absolutePath != null) {
            return new File(absolutePath);
        }
        return null;
    }

}
